<script>
	import Vue from 'vue'

	import { appMixins } from '@/common/customUtils';

	export default {
		mixins: [appMixins],
		onLaunch: function() {
			this.$store.commit('initApp')
			uni.getSystemInfo({
				success: function(e) {
					// #ifndef MP
					Vue.prototype.StatusBar = e.statusBarHeight
					if (e.platform == 'android') {
						Vue.prototype.CustomBar = e.statusBarHeight + 50
					} else {
						Vue.prototype.CustomBar = e.statusBarHeight + 45
					}
					// #endif
					// #ifdef MP-WEIXIN
					Vue.prototype.StatusBar = e.statusBarHeight
					let custom = wx.getMenuButtonBoundingClientRect()
					Vue.prototype.Custom = custom
					Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight
					// #endif
					// #ifdef MP-ALIPAY
					Vue.prototype.StatusBar = e.statusBarHeight
					Vue.prototype.CustomBar = e.statusBarHeight + e.titleBarHeight
					// #endif
					let unitRatio = 750 / uni.getSystemInfoSync().windowWidth
					Vue.prototype.StatusBarRpx = Vue.prototype.StatusBar * unitRatio
					Vue.prototype.CustomBarRpx = Vue.prototype.CustomBar * unitRatio
					Vue.prototype.unitRatio = unitRatio
					Vue.mixin({
						data() {
							return {
								StatusBar: Vue.prototype.StatusBar, //状态栏高度(px)
								CustomBar: Vue.prototype.CustomBar, //整个标题栏高度(px)
								StatusBarRpx: Vue.prototype.StatusBarRpx, //状态栏高度(rpx)
								CustomBarRpx: Vue.prototype.CustomBarRpx, //整个标题栏高度(rpx)
							}
						},
					})
				},
			})
			// #ifdef APP-PLUS
			// 锁定屏幕显示方向为竖屏正方向
			plus.screen.lockOrientation('portrait-primary')
			// 推送服务
			plus.push.addEventListener('click', (message) => {
				this.pushCallback(message)
			})
			// #endif
			global.token && this.$store.dispatch('getCartList')


			this.getTitleData();
		},
		onShow: function() {
			console.log('APP Show')

			// #ifdef APP-PLUS
			// 获取参数
			const args = plus.runtime.arguments
			if (args) {
				plus.runtime.arguments = null
				plus.runtime.arguments = ''
				let params_str = args.split('?')[1]
				if (params_str) {
					let params = params_str.split('&').reduce(function(total, item) {
						let arr = item.split('=')
						total[arr[0]] = arr[1]
						return total
					}, {})
					console.log('params', params)
					// params 参数: path 跳转路径 options 参数
					uni.navigateTo({
						url: `${params.path}?goods_id=${params.goods_id}&activity_id=${params.activity_id}&sku_id=${params.sku_id}&bargain_id=${params.bargain_id}`,
					})
				}
			}
			// #endif
		},
		onHide: function() {
			// 用户退出app时，把二次验证状态改为true
			console.log('APP Hide')
		},
		methods: {
			// 获取页面标题
			getTitleData() {
				this.$api.post(global.API_VERSION + '63a6af1d5fc8e', {

				}).then(res => {
					if (res.data.code == 1) {
						global.home_title = res.data.data.home_title;
						global.home_desc = res.data.data.home_desc;
					} else {
						this.$message.info(res.data.msg);
					}
				})
			},


			// 推送回调
			pushCallback(message) {
				this.$urouter.navigateTo('/pages/service-message/message/message-type/index')
			},
			// #ifdef APP-PLUS
			// 权限检查
			checkPermissions() {
				// #ifdef APP-PLUS
				if (plus.os.name == 'Android') {
					// 判断是Android
					var main = plus.android.runtimeMainActivity()
					var pkName = main.getPackageName()
					var uid = main.getApplicationInfo().plusGetAttribute('uid')
					var NotificationManagerCompat = plus.android.importClass('android.support.v4.app.NotificationManagerCompat')
					var areNotificationsEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled()
					// 未开通‘允许通知’权限，则弹窗提醒开通，并点击确认后，跳转到系统设置页面进行设置
					if (!areNotificationsEnabled) {
						uni.showModal({
							title: this.$t('通知权限开启提醒'),
							content: this.$t('您还没有开启通知权限，无法接受到消息通知，是否前往设置？'),
							success: function(res) {
								if (res.confirm) {
									var Intent = plus.android.importClass('android.content.Intent')
									var Build = plus.android.importClass('android.os.Build')
									//android 8.0引导
									if (Build.VERSION.SDK_INT >= 26) {
										var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS')
										intent.putExtra('android.provider.extra.APP_PACKAGE', pkName)
									} else if (Build.VERSION.SDK_INT >= 21) {
										//android 5.0-7.0
										var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS')
										intent.putExtra('app_package', pkName)
										intent.putExtra('app_uid', uid)
									} else {
										//(<21)其他--跳转到该应用管理的详情页
										intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
										var uri = Uri.fromParts('package', mainActivity.getPackageName(), null)
										intent.setData(uri)
									}
									// 跳转到该应用的系统通知设置页
									main.startActivity(intent)
								}
							},
						})
					}
				} else if (plus.os.name == 'iOS') {
					// 判断是IOS
					var isOn = undefined
					var types = 0
					var app = plus.ios.invoke('UIApplication', 'sharedApplication')
					var settings = plus.ios.invoke(app, 'currentUserNotificationSettings')
					if (settings) {
						types = settings.plusGetAttribute('types')
						plus.ios.deleteObject(settings)
					} else {
						types = plus.ios.invoke(app, 'enabledRemoteNotificationTypes')
					}
					plus.ios.deleteObject(app)
					isOn = 0 != types
					if (isOn == false) {
						uni.showModal({
							title: this.$t('通知权限开启提醒'),
							content: this.$t('您还没有开启通知权限，无法接受到消息通知，是否前往设置？'),
							success: function(res) {
								if (res.confirm) {
									var app = plus.ios.invoke('UIApplication', 'sharedApplication')
									var setting = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:')
									plus.ios.invoke(app, 'openURL:', setting)
									plus.ios.deleteObject(setting)
									plus.ios.deleteObject(app)
								}
							},
						})
					}
				}
				// #endif
			},
			// #endif
		},
	}
</script>

<style lang="scss">
	/* #ifndef APP-PLUS-NVUE */
	@import './style/icon.css';
	@import './style/main.css';
	@import './style/animation.css';
	@import './style/iconfont.css';
	@import './style/common.scss';
	@import './style/diyStyle.scss';
	/* #endif */

	/*
		项目常用字体
		
		font-family: Alimama DongFangDaKai;	【普通】
		font-family: AlimamaDongFangDaKai-Regular;	【加粗】
		
		style="font-family: Alimama DongFangDaKai;"
	*/

	// @font-face {
	// 	font-family: "demoFont";
	// 	src: url("https://www.guochaoxiaoju.com/fonts/demoFont.ttf")format('truetype');
	// }

	// @font-face {
	// 	font-family: "Alimama DongFangDaKai-Regular";
	// 	src: url("https://www.guochaoxiaoju.com/fonts/Alimama_DongFangDaKai_Regular.ttf")format('truetype');
	// }

	// @font-face {
	// 	font-family: "Alimama DongFangDaKai";
	// 	src: url("https://www.guochaoxiaoju.com/fonts/Alimama_DongFangDaKai_Regular.ttf")format('truetype');
	// }

	// @font-face {
	// 	font-family: "AlimamaDongFangDaKai-Regular";
	// 	src: url("https://www.guochaoxiaoju.com/fonts/Alimama_DongFangDaKai_Regular.ttf")format('truetype');
	// }

	// @font-face {
	// 	font-family: "NotoSansHans-Black";
	// 	src: url("https://www.guochaoxiaoju.com/fonts/NotoSansHans-Black.otf")format('truetype');
	// }

	// @font-face {
	// 	font-family: "NotoSansHans-Bold";
	// 	src: url("https://www.guochaoxiaoju.com/fonts/NotoSansHans-Bold.otf")format('truetype');
	// }

	// @font-face {
	// 	font-family: "NotoSansHans-DemiLight";
	// 	src: url("https://www.guochaoxiaoju.com/fonts/NotoSansHans-DemiLight.otf")format('truetype');
	// }

	// @font-face {
	// 	font-family: "NotoSansHans-Light";
	// 	src: url("https://www.guochaoxiaoju.com/fonts/NotoSansHans-Light.otf")format('truetype');
	// }

	// @font-face {
	// 	font-family: "NotoSansHans-Medium";
	// 	src: url("https://www.guochaoxiaoju.com/fonts/NotoSansHans-Medium.otf")format('truetype');
	// }

	// @font-face {
	// 	font-family: "NotoSansHans-Regular";
	// 	src: url("https://www.guochaoxiaoju.com/fonts/NotoSansHans-Regular.otf")format('truetype');
	// }

	// @font-face {
	// 	font-family: "NotoSansHans-Thin-Windows";
	// 	src: url("https://www.guochaoxiaoju.com/fonts/NotoSansHans-Thin-Windows.otf")format('truetype');
	// }
</style>